import pandas as pd
import numpy as np

index = pd.date_range('2024-11-1', periods=8)
s1 = pd.Series(np.random.rand(8), index=index)
df1 = pd.DataFrame(np.random.rand(5, 8), index=['a', 'b', 'c', 'd', 'e'], columns=index)
print(df1)
print(s1)
# Head 与 Tail
"""
head() 与 tail() 用于快速预览 Series 与 DataFrame，
默认显示 5 条数据，也可以指定显示数据的数量。
"""
print(s1.head(3))

# 属性与底层数据
print(df1.shape)  # 输出对象的轴维度，与 ndarray 一致
print(df1.index, df1.columns, s1.index)  # 可以赋值

df2 = pd.DataFrame(np.random.rand(3, 3), columns=['one', 'two', 'three'], index=['a', 'b', 'c'])
df3 = pd.DataFrame(np.random.rand(3, 3), columns=['one', 'two', 'three'], index=['a', 'b', 'c'])

print(df2.add(df3, fill_value=0))  # 加算

# 比较操作
print(df2.ge(df3))
# 布尔简化
print((df2 > 0).all())
print((df2 > 0).any())

# 比较对象是否等效
print((df2 + df2).equals(df2 * 2))  # True

# 比较 array 型对象
Ser1 = pd.Series(['foo', 'fer', 'ser'])
Ser2 = pd.Series(['foo', 'fre', 'ser'])

print(Ser1 == 'foo')
print(Ser1 == Ser2)

# 合并重叠数据集
df4 = pd.DataFrame({'A': [1, np.nan, 3, 4, 5], 'B': [6, 7, 8, np.nan, 10]})
df5 = pd.DataFrame({'A': [np.nan, 2, 3, 4, 5, 6, np.nan], 'B': [6, np.nan, 8, 9, 10, 11, 12]})
print(df4.combine_first(df5))
# DataFrame 通用合并方法

